MFC 基于CView的应用程序添加滚动条 | 您所在的位置:网站首页 › 滚动条自动滚动 MFC › MFC 基于CView的应用程序添加滚动条 |
当需要在基于CView的应用程序中添加滚动条,需要手工做以下两个步骤: 1. 查找视图的头文件和CPP文件,将所有出现的CView修改为CScrollView,除了在函数参数列表中出现饿CView*。 2. 如果还没有覆盖的话就要覆盖OnInitialUpdate(重载),并插入对SetScrollView的调用。 如果进行了第一步而忘记了第二步,在运行程序的时候会报错,具体看下面的例子:
重载函数OnInitialUpdate void CRMBProjectView::OnInitialUpdate(){ CScrollView::OnInitialUpdate(); CClientDC dc(this); int m_nCellWidth = dc.GetDeviceCaps(LOGPIXELSX); int m_nCellHeigh = dc.GetDeviceCaps(LOGPIXELSY) / 4; int m_nRibbonWidth = m_nCellWidth / 2; int nWidth = (26 * m_nCellWidth) + m_nRibbonWidth; int nHeight = m_nCellHeigh * 100; SetScrollSizes(MM_TEXT,CSize(nWidth,nHeight)); // TODO: Add your specialized code here and/or call the base class} 动态生成滚动条的大小 void CRMBProjectView::OnDraw(CDC* pDC){ CRMBProjectDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); sizeTotal.cx = pDoc ->width * 2 + 20; sizeTotal.cy = pDoc->height; SetScrollSizes(MM_TEXT,sizeTotal); } |
CopyRight 2018-2019 实验室设备网 版权所有 |